home *** CD-ROM | disk | FTP | other *** search
Wrap
GW-BASIC | 1985-07-12 | 9.1 KB | 294 lines
10 REM PRINT WEEKLY RECAP SHEET (RECAP) 12 REM Developed by William W. Klaproth, Moraga Ca. 94556 September 1982 20 REM MASTER FILE DESCRIPTIONS FOR ALL BOWLING PROGRAMS 30 OPEN "B:TEAMS.HDR" AS #1 LEN = 64 40 FIELD #1, 2 AS TM$, 30 AS NAM$, 2 AS RCNT$, 2 AS GAM$, 4 AS PINS$, 2 AS AVG$, 2 AS HIG$, 2 AS HIS$, 4 AS PTSW$, 4 AS PTSL$, 2 AS B1ID$, 2 AS B2ID$, 2 AS B3ID$, 2 AS B4ID$, 2 AS B5ID$ 50 FIELD #1, 2 AS HDRID$, 30 AS LEAGUE$, 2 AS WEEKS$, 2 AS TEAMS$, 4 AS FILLER$, 2 AS BWLPERTM$, 2 AS NXTID$, 2 AS HCPBASE$, 4 AS HCPPCNT$ 60 OPEN "B:BOWLERS.HDR" AS #2 LEN = 64 70 FIELD #2, 2 AS BBO$, 30 AS BNAM$, 2 AS BRCNT$, 2 AS BGAM$, 4 AS BPINS$, 2 AS BAVG$, 2 AS BHIG$, 2 AS BHIS$, 2 AS BHCP$, 2 AS BHIGH$, 2 AS BHISH$, 2 AS BTM$,2 AS GAM2$, 2 AS SER5$, 2 AS SER6$,2 AS CURSER$,2 AS AVGLSTYR$ 80 REM OPEN "B:TEAM.DET" AS #3 LEN = 16 90 REM FIELD #3,2 AS DTM$, 2 AS TMO$, 2 AS TDAY$, 2 AS TG1$, 2 AS TG2$, 2 AS TG3$, 2 AS TSER$, 2 AS DPTSW$ 100 REM OPEN "B:BOWLER.DET" AS #4 LEN = 16 110 REM FIELD #4,2 AS DBO$, 2 AS BMO$, 2 AS BDAY$, 2 AS BG1$, 2 AS BG2$, 2 AS BG3$, 2 AS BSER$ 120 CLS 130 PRINT "PRINT WEEKLY RECAP SHEET" 140 GET #1,1 150 TEAMS% = CVI(TEAMS$) 160 BOWLERS% = CVI(BWLPERTM$) 170 WEEKS% = CVI(WEEKS$) 180 NEXTID% = CVI(NXTID$) 190 DIM TM%(TEAMS%) 200 DIM NAM$(TEAMS%) 210 DIM GAM%(TEAMS%) 220 DIM PINS(TEAMS%) 230 DIM AVG%(TEAMS%) 240 DIM HIG%(TEAMS%) 250 DIM HIS%(TEAMS%) 260 DIM PTSW(TEAMS%) 270 DIM PTSL(TEAMS%) 280 REM BOWLER SCORES TABLES 290 DIM BONUM%(NEXTID% - 1) 'TABLE FOR HI GAME 300 DIM HIGAME%(NEXTID% - 1) ' * 310 DIM BONUM2%(NEXTID% - 1) 'TABLE FOR HI SERIES 320 DIM HISERIES%(NEXTID% - 1) ' * 330 D% = 0 'SET START OF SCORES TABLE 340 LPRINT "RHEEM VALLEY BOWL ";LEAGUE$;SPC(10);DATE$ 350 LPRINT " " 360 DIM TABTM%(TEAMS%) 370 DIM TABPTS#(TEAMS%) 380 FOR T% = 1 TO TEAMS% 390 GET #1, (T% + 1) 400 TM%(T%) = CVI(TM$) 410 NAM$(T%) = NAM$ 420 GAM%(T%) = CVI(GAM$) 430 PINS(T%) = CVS(PINS$) 440 AVG%(T%) = CVI(AVG$) 450 HIG%(T%) = CVI(HIG$) 460 HIS%(T%) = CVI(HIS$) 470 PTSW(T%) = CVS(PTSW$) 480 PTSL(T%) = CVS(PTSL$) 490 TABTM%(T%) = TM%(T%) 'LOAD SORT TABLE 500 TABPTS#(T%) = PTSW(T%) * 1E+06 + PINS(T%) ' * 510 NEXT T% 520 REM SORT TEAMS BY POINTS WON 530 PRINT "SORTING TEAMS BY POINTS WON" 540 M% = TEAMS%: LAST$ = " " 550 M% = M% / 2 560 IF LAST$ = "Y" GOTO 700 570 IF M% = 1 THEN LAST$ = "Y" 580 K% = TEAMS% - M%: J% = 1 590 I% = J% 600 L% = I% + M% 610 IF TABPTS#(I%) <= TABPTS#(L%) GOTO 670 620 TEMPPTS# = TABPTS#(I%): TEMPTM% = TABTM%(I%) 630 TABPTS#(I%) = TABPTS#(L%): TABTM%(I%) = TABTM%(L%) 640 TABPTS#(L%) = TEMPPTS#: TABTM%(L%) = TEMPTM% 650 I% = I% - M% 660 IF I% > 0 GOTO 600 670 J% = J% + 1 680 IF J% > K% GOTO 550 ELSE GOTO 590 690 REM END OF INTERNAL SORT ROUTINE 700 PRINT "PRINTING TEAM STANDINGS" 710 LPRINT "PLACE TEAM WON LOST PINS GAM AVG HIG HIS" 720 LPRINT "----- ----- --- ---- ---- --- --- --- ---" 730 PLACE% = 1 740 FOR PL% = TEAMS% TO 1 STEP -1 750 T% = TABTM%(PL%) 760 LPRINT USING " ## ";PLACE%; 770 LPRINT NAM$(T%); 780 LPRINT USING "###.# ";PTSW(T%),PTSL(T%); 790 LPRINT USING "##### ";PINS(T%); 800 LPRINT USING " ### ";GAM%(T%); 810 LPRINT USING "#### ";AVG%(T%),HIG%(T%),HIS%(T%) 820 PLACE% = PLACE% + 1 830 NEXT PL% 840 LPRINT "*****************************************************************************" 850 PRINT "PRINTING BOWLER RECAP" 860 LPRINT "TEAM NAME SER PINS GMS AVG HIG HIS 200 500 600" 870 LPRINT "---- ----- --- ---- --- --- --- --- --- --- ---" 880 FOR T% = 1 TO TEAMS% 890 GET 1, (T% + 1) 900 BID%(1) = CVI(B1ID$) 910 BID%(2) = CVI(B2ID$) 920 BID%(3) = CVI(B3ID$) 930 BID%(4) = CVI(B4ID$) 940 BID%(5) = CVI(B5ID$) 950 FOR B% = 1 TO BOWLERS% 960 GET #2,BID%(B%) 970 IF B% = 1 THEN LPRINT USING " ## ";T%; 980 IF B% > 1 THEN LPRINT " "; 990 LPRINT BNAM$; 1000 CURSER% = CVI(CURSER$) 1010 IF CURSER% > 50 THEN GOTO 1040 ELSE LPRINT " A-"; 1020 LPRINT USING "# ";CURSER%; 1030 GOTO 1050 1040 LPRINT USING " ### ";CURSER%; 1050 LPRINT USING " ##### ";CVS(BPINS$); 1060 LPRINT USING "### ";CVI(BGAM$); 1070 LPRINT USING " ### ";CVI(BAVG$),CVI(BHIG$),CVI(BHIS$); 1080 GAM2% = CVI(GAM2$): SER5% = CVI(SER5$): SER6% = CVI(SER6$) 1090 IF GAM2% = 0 THEN LPRINT SPC(4) ELSE LPRINT USING "### ";CVI(GAM2$); 1100 IF SER5% = 0 THEN LPRINT SPC(4) ELSE LPRINT USING "### ";CVI(SER5$); 1110 IF SER6% > 0 THEN LPRINT USING "### ";CVI(SER6$) ELSE LPRINT SPC(6) 1120 D% = D% + 1 1130 BONUM%(D%) = CVI(BBO$) 'MOVE SCORES TO TABLE FOR SORTING 1140 HIGAME%(D%) = CVI(BHIG$) ' * 1150 BONUM2%(D%) = BONUM%(D%) ' * 1160 HISERIES%(D%) = CVI(BHIS$) ' * 1170 NEXT B% 1180 NEXT T% 1190 LPRINT "*****************************************************************************" 1200 PRINT "PRINTING SUBSTITUTE RECAP" 1210 LPRINT "SUBS" 1220 FOR S% = 1 TO (NEXTID% - 1) 1230 GET #2,S% 1240 IF CVI(BTM$) > 0 GOTO 1370 1250 LPRINT " "; 1260 LPRINT USING "## ";CVI(BBO$); 1270 LPRINT BNAM$; 1280 CURSER% = CVI(CURSER$) 1290 IF CURSER% < 50 THEN LPRINT SPC(5) ELSE LPRINT USING " ### ";CURSER%; 1300 LPRINT USING " ##### ";CVS(BPINS$); 1310 LPRINT USING "### ";CVI(BGAM$); 1320 LPRINT USING " ### ";CVI(BAVG$),CVI(BHIG$),CVI(BHIS$); 1330 GAM2% = CVI(GAM2$): SER5% = CVI(SER5$): SER6% = CVI(SER6$) 1340 IF GAM2% = 0 THEN LPRINT SPC(4) ELSE LPRINT USING "### ";CVI(GAM2$); 1350 IF SER5% = 0 THEN LPRINT SPC(4) ELSE LPRINT USING "### ";CVI(SER5$); 1360 IF SER6% > 0 THEN LPRINT USING "### ";CVI(SER6$) ELSE LPRINT SPC(6) 1370 NEXT S% 1380 LPRINT CHR$(12) 1390 LPRINT " " 1400 LPRINT " HIGH GAME HIGH SERIES" 1410 LPRINT " --------- -----------" 1420 REM SORT HIGAME SCORES 1430 PRINT "SORTING BOWLER HIGAME SCORES" 1440 M% = NEXTID% - 1: LAST$ = " " 1450 M% = M% / 2 1460 IF LAST$ = "Y" GOTO 1610 1470 IF M% = 1 THEN LAST$ = "Y" 1480 K% = (NEXTID% - 1) - M%: J% = 1 1490 I% = J% 1500 L% = I% + M% 1510 IF HIGAME%(I%) <= HIGAME%(L%) GOTO 1570 1520 TEMPGAME% = HIGAME%(I%): TEMPBO% = BONUM%(I%) 1530 HIGAME%(I%) = HIGAME%(L%): BONUM%(I%) = BONUM%(L%) 1540 HIGAME%(L%) = TEMPGAME%: BONUM%(L%) = TEMPBO% 1550 I% = I% - M% 1560 IF I% > 0 GOTO 1500 1570 J% = J% + 1 1580 IF J% > K% GOTO 1450 ELSE GOTO 1490 1590 REM END OF HIGAME SORT ROUTINE 1600 REM SORT HISERIES SCORES 1610 PRINT "SORTING BOWLER HISERIES SCORES" 1620 M% = NEXTID% - 1: LAST$ = " " 1630 M% = M% / 2 1640 IF LAST$ = "Y" GOTO 1780 1650 IF M% = 1 THEN LAST$ = "Y" 1660 K% = (NEXTID% - 1) - M%: J% = 1 1670 I% = J% 1680 L% = I% + M% 1690 IF HISERIES%(I%) <= HISERIES%(L%) GOTO 1750 1700 TEMPSERIES% = HISERIES%(I%): TEMPBO% = BONUM2%(I%) 1710 HISERIES%(I%) = HISERIES%(L%): BONUM2%(I%) = BONUM2%(L%) 1720 HISERIES%(L%) = TEMPSERIES%: BONUM2%(L%) = TEMPBO% 1730 I% = I% - M% 1740 IF I% > 0 GOTO 1680 1750 J% = J% + 1 1760 IF J% > K% GOTO 1630 ELSE GOTO 1670 1770 REM END OF HISERIES SORT ROUTINE 1780 BEEP 1790 INPUT "HOW MANY LINES OF HIGH SCORES DO YOU WISH TO PRINT:";LINES% 1800 LIMIT% = (NEXTID% - LINES%) 1810 PRINT "PRINTING LEAGUE HIGH SCORES" 1820 FOR PL% = (NEXTID% - 1) TO LIMIT% STEP -1 1830 GET #2,BONUM%(PL%) 1840 HIGNAM$ = LEFT$(BNAM$,20) 1850 GET #2,BONUM2%(PL%) 1860 LPRINT SPC(5);HIGNAM$; 1870 LPRINT USING " ###";HIGAME%(PL%); 1880 LPRINT SPC(7);LEFT$(BNAM$,20); 1890 LPRINT USING " ###";HISERIES%(PL%) 1900 NEXT PL% 1910 LPRINT " " 1920 LPRINT " HI LITES LAST WEEK" 1930 LPRINT " ------------------" 1940 LPRINT " " 1950 REM READ HILITE RECORDS FROM FILE #5 1960 L% = NEXTID% 1970 DIM HBNO%(L%) 1980 DIM HG1%(L%) 1990 DIM HG2%(L%) 2000 DIM HG3%(L%) 2010 DIM HSER%(L%) 2020 DIM FLG1$(L%) 2030 DIM FLG2$(L%) 2040 DIM FLG3$(L%) 2050 DIM FLGS$(L%) 2060 DIM HCNT%(L%) 2070 DIM SCOR%(4) 2080 OPEN "B:HISCORES.DET" AS #5 LEN = 16 2090 FIELD #5, 2 AS HBNO$, 2 AS HG1$, 2 AS HG2$, 2 AS HG3$, 2 AS HSER$, 1 AS HFLG1$, 1 AS HFLG2$, 1 AS HFLG3$, 1 AS HFLGS$, 2 AS HCNT$ 2100 PRINT "PROCESSING LAST WEEK'S HILITES" 2110 HILITE% = 0 2120 FOR T% = 1 TO L% 2130 GET #5,T% 2140 HG1%(T%) = CVI(HG1$) 2150 IF HG1%(T%) = 9999 GOTO 2210 2160 HBNO%(T%) = CVI(HBNO$): HG2%(T%) = CVI(HG2$) 2170 HG3%(T%) = CVI(HG3$): HSER%(T%) = CVI(HSER$) 2180 FLG1$(T%) = HFLG1$: FLG2$(T%) = HFLG2$: FLG3$(T%) = HFLG3$: FLGS$(T%) = HFLGS$: HCNT%(T%) = CVI(HCNT$) 2190 IF HCNT%(T%) > 0 THEN HILITE% = HILITE% + 1 2200 NEXT T% 2210 PRSW$ = "L" 2220 FOR V% = 1 TO L% 2230 IF HG1%(V%) = 9999 GOTO 2470 2240 IF HCNT%(V%) = 0 GOTO 2450 2250 GET #2,HBNO%(V%) 2260 U% = 1 2270 IF FLG1$(V%) = "1" THEN SCOR%(U%) = HG1%(V%):U%=U%+1 2280 IF FLG2$(V%) = "1" THEN SCOR%(U%) = HG2%(V%):U%=U%+1 2290 IF FLG3$(V%) = "1" THEN SCOR%(U%) = HG3%(V%):U%=U%+1 2300 IF FLGS$(V%) = "1" THEN SCOR%(U%) = HSER%(V%):U%=U%+1 2310 IF U% = 1 GOTO 2440 2320 LPRINT LEFT$(BNAM$,20); 2330 ON U% GOTO 2440,2340,2370,2400,2430 2340 LPRINT USING "### ";SCOR%(1); 2350 LPRINT " "; 2360 GOTO 2440 2370 LPRINT USING "### ";SCOR%(1),SCOR%(2); 2380 LPRINT " "; 2390 GOTO 2440 2400 LPRINT USING "### ";SCOR%(1),SCOR%(2),SCOR%(3); 2410 LPRINT " "; 2420 GOTO 2440 2430 LPRINT USING "### ";SCOR%(1),SCOR%(2),SCOR%(3),SCOR%(4); 2440 IF PRSW$ = "R" THEN LPRINT " " 2450 IF PRSW$ = "R" THEN PRSW$ = "L" ELSE PRSW$ = "R" 2460 NEXT V% 2470 LPRINT " ": IF PRSW$ = "R" THEN LPRINT " " 2480 DIM MESG$(7) 2490 K% = 1 2500 LINE INPUT "ENTER MESSAGES:";MESG$(K%) 2510 TMSG$ = MESG$(K%) 2520 FIRST4$ = LEFT$(TMSG$,4) 2530 IF FIRST4$ = "*END" OR FIRST4$ = "*end" GOTO 2570 2540 IF K% = 7 GOTO 2580 2550 K% = K% + 1 2560 GOTO 2500 2570 K% = K% - 1 2580 LPRINT " " 2590 INPUT "ENTER NEXT BOWLING DATE (MM,DD): ",SMO%,SDY% 2600 IF SMO% = 0 GOTO 2860 2610 OPEN "B:SCHEDULE.DET" AS #3 LEN = 75 2620 FIELD #3, 1 AS STATUS$, 2 AS WEEK$, 2 AS SMO$, 2 AS SDY$, 68 AS PRLINE$ 2630 GET #3,1 2640 LPRINT "DATE\ LANE ";PRLINE$ 2650 LPRINT "----- "; 2660 FOR LN% = 1 TO TEAMS% / 2 2670 LPRINT " -----"; 2680 NEXT LN% 2690 LPRINT " " 2700 FOR L% = 2 TO 40 2710 GET #3,L% 2720 IF CVI(SMO$) = 99 GOTO 2750 2730 IF SMO% = CVI(SMO$) THEN IF SDY% = CVI(SDY$) GOTO 2770 ELSE GOTO 2740 2740 NEXT L% 2750 PRINT "**ERROR - NO MATCH FOUND IN SCHEDULE FILE" 2760 STOP 2770 FOR M% = L% TO (L% + 2) 2780 GET #3, M% 2790 IF CVI(SMO$) = 99 GOTO 2850 2800 LPRINT USING "##";CVI(SMO$); 2810 LPRINT USING "/##";CVI(SDY$); 2820 LPRINT SPC(6); 2830 LPRINT PRLINE$ 2840 NEXT M% 2850 LPRINT " " 2860 FOR L% = 1 TO K% 2870 LPRINT MESG$(L%) 2880 NEXT L% 2890 LPRINT CHR$(12) 2900 PRINT "Print Processing Completed - Returning to MENU" 2910 CLOSE 2920 RUN "A:MENU"